//
//  Copyright 2012 Alin Dobra and Christopher Jermaine
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//
#include "Diagnose.h"

Diagnose diagnose; //declared here globally

extern Timer global_clock; // the global clock, declared in Logging.cc as a global variable

using namespace std;

Diagnose::Diagnose(){
	//initialize the event processor in a separate independent thread
	sqliteDumper.ForkAndSpin();
}

Diagnose::~Diagnose(){
	//sent the content of MessageContainer for the last time,
	//with killMe flag set to true, so that after dumping these records, sqliteDumper kill itself
	DumpRequestMessage_Factory(sqliteDumper, true, msgContainer);
	sqliteDumper.WaitForProcessorDeath();
}
